package net.inteidee.bean.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Entity
//@IdClass(PK.class)
public class RuoloApplicazioneOperazione {

//	@Id
//	@Column(name = "RUOLO_ID", insertable = false , updatable = false)
//	long idRuolo;
//	
//	@Id
//	@Column(name = "OPERAZIONE_ID", insertable = false , updatable = false)
//	long idOperazione;
//	
//	@Id
//	@Column(name = "APPLICAZIONE_ID", insertable = false , updatable = false)
//	long idApplicazione;
	
	@Id@GeneratedValue
	long id;
	
	
	
	
	@ManyToOne
	@JoinColumn(name = "RUOLO_ID")
	private Ruolo ruolo;

	@ManyToOne
	@JoinColumn(name = "OPERAZIONE_ID")
	private Operazione operazione;

	@ManyToOne
	@JoinColumn(name = "APPLICAZIONE_ID")
	private Applicazione applicazione;

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public Ruolo getRuolo() {
		return ruolo;
	}

	public void setRuolo(Ruolo ruolo) {
		this.ruolo = ruolo;
	}

	public Operazione getOperazione() {
		return operazione;
	}

	public void setOperazione(Operazione operazione) {
		this.operazione = operazione;
	}

	public Applicazione getApplicazione() {
		return applicazione;
	}

	public void setApplicazione(Applicazione applicazione) {
		this.applicazione = applicazione;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((applicazione == null) ? 0 : applicazione.hashCode());
		result = prime * result + (int) (id ^ (id >>> 32));
		result = prime * result
				+ ((operazione == null) ? 0 : operazione.hashCode());
		result = prime * result + ((ruolo == null) ? 0 : ruolo.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		RuoloApplicazioneOperazione other = (RuoloApplicazioneOperazione) obj;
		if (applicazione == null) {
			if (other.applicazione != null)
				return false;
		} else if (!applicazione.equals(other.applicazione))
			return false;
		if (id != other.id)
			return false;
		if (operazione == null) {
			if (other.operazione != null)
				return false;
		} else if (!operazione.equals(other.operazione))
			return false;
		if (ruolo == null) {
			if (other.ruolo != null)
				return false;
		} else if (!ruolo.equals(other.ruolo))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "RuoloApplicazioneOperazione [id=" + id + ", ruolo=" + ruolo
				+ ", operazione=" + operazione + ", applicazione="
				+ applicazione + "]";
	}

	
	
	


}
